package cn.wolfcode.wolf2w.service;

import cn.wolfcode.wolf2w.cache.vo.CatalogVO;
import cn.wolfcode.wolf2w.domain.Strategy;
import cn.wolfcode.wolf2w.cache.vo.StrategyStatisVO;
import cn.wolfcode.wolf2w.query.StrategyQuery;
import org.springframework.data.domain.Page;

import java.util.List;

public interface IStrategyService {

    void add(Strategy strategy);

    void delete(String id);

    void update(Strategy strategy);

    Strategy get(String id);

    List<Strategy> list();


    Page<Strategy> query(StrategyQuery qo);

    void saveOrUpdate(Strategy strategy);

    // 通过目的地对攻略进行分组
    List<CatalogVO> groupList();

    // 改变上下架状态  (部分字段的更新操作)
    void changeState(int state, String id);

    // 通过分类id查询攻略集合
    List<Strategy> queryCatalogId(String id);

    //  通过目的地id查询对应的所有攻略明细
    List<Strategy> queryStrategyByDestId(String destId);

    // vo对象更新的持久化操作
    void updateStrategyVo(StrategyStatisVO vo);

    //通过目的地查询相关游记信息
    List<Strategy> queryByDestName(String keyword);

    // 通过攻略id查询攻略
    List<Strategy> queryStrategyById(List<String> sids);
}
